From 1ec2a5bbca15c19d75a4c07c41531693db06085e Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Mon, 13 Nov 2006 14:25:48 +0000 Subject: [PATCH] [IOEMU] Simply fake-bios init of the piix4acpi device. Signed-off-by: Keir Fraser --- tools/ioemu/hw/piix4acpi.c | 2 +- tools/ioemu/hw/piix_pci.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/tools/ioemu/hw/piix4acpi.c b/tools/ioemu/hw/piix4acpi.c index c06059e498..aabd5ca7e9 100644 --- a/tools/ioemu/hw/piix4acpi.c +++ b/tools/ioemu/hw/piix4acpi.c @@ -406,7 +406,7 @@ void pci_piix4_acpi_init(PCIBus *bus, int devfn) * TODO: if Guest Firmware or Guest OS will change this PMBA, * More logic will be added. */ - pci_conf[0x40] = 0x41; + pci_conf[0x40] = 0x41; /* Special device-specific BAR at 0x40 */ pci_conf[0x41] = 0x1f; acpi_map(d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO); acpi_reset(d); diff --git a/tools/ioemu/hw/piix_pci.c b/tools/ioemu/hw/piix_pci.c index 051e082263..497d66898c 100644 --- a/tools/ioemu/hw/piix_pci.c +++ b/tools/ioemu/hw/piix_pci.c @@ -338,10 +338,14 @@ static void pci_bios_init_device(PCIDevice *d) break; case 0x0680: if (vendor_id == 0x8086 && device_id == 0x7113) { - /* PIIX4 ACPI PM */ - pci_config_writew(d, 0x20, 0x0000); /* NO smb bus IO enable in PIIX4 */ + /* + * PIIX4 ACPI PM. + * Special device with special PCI config space. No ordinary BARs. + */ + pci_config_writew(d, 0x20, 0x0000); // No smb bus IO enable pci_config_writew(d, 0x22, 0x0000); - goto default_map; + pci_config_writew(d, 0x3c, 0x0009); // Hardcoded IRQ9 + pci_config_writew(d, 0x3d, 0x0001); } break; case 0x0300: @@ -394,14 +398,6 @@ static void pci_bios_init_device(PCIDevice *d) pic_irq = pci_irqs[pin]; pci_config_writeb(d, PCI_INTERRUPT_LINE, pic_irq); } - - if (class== 0x0680&& vendor_id == 0x8086 && device_id == 0x7113) { - // PIIX4 ACPI PM - pci_config_writew(d, 0x20, 0x0000); // NO smb bus IO enable in PIIX4 - pci_config_writew(d, 0x22, 0x0000); - pci_config_writew(d, 0x3c, 0x0009); // Hardcodeed IRQ9 - pci_config_writew(d, 0x3d, 0x0001); - } } /* -- 2.30.2